如果有常去逛電商網站,就可能有看過網站推薦你:「購買了這本書的人還買了什麼?」或者,「誰的粉絲也看了什麼影片?」。這樣的推薦方式是什麼樣的推薦方式呢?
前幾天的內容,基於內容相似的推薦的演算法,都沒有考慮到人和電影的互動,也就是說,人的行為沒有被拿來當作參考。
把人和物品的互動當作是推薦的參考資料。這種推薦方式就會被稱為:協作過濾推薦(Collaborative filtering recommendation)。你可以理解人的行為當成是內容,然後找相似度高的做推薦。
好了,這個演算法一句話就講完了,是不是很簡單,可以下課了~~~~~~
如果你還沒有急著下課,那我還可以再多說一點點,這種做法可以分為兩類,而且每一類都會有一張表,而特徵向量就從這邊來。
這一類的基本思路是:假設物以類聚,朋友間喜歡和討厭的東西會一樣。
例如系統發現 Alice 和 Bob 他們喜歡的東西和討厭的東西很像。如果系統知道 Bob 喜歡神隱少女,那同樣的就會推薦神隱少女給 Alice 。
這樣問題就又來了,什麼叫做 Alice 和 Bob 很像?
第一類是以人為主,這一類的話,就是以物品為主。
舉個例子:如果神隱少女這個部電影,喜歡他跟討厭他的人群分布跟「龍貓」是一樣,那當人們關注「神隱少女」時,就推薦「龍貓」給他,是不是也很合理?
這樣問題就又來了。什麼叫做喜歡他和討厭他的人群分布很像?
要找相似度,就要先找到要推薦的東西或使用者的特徵向量,。
所以在利用 UserCF 或 ItemCF 時,都會用到一張評分表,用來表達每個人對每部電影的喜好程度,這剛好就可以拿來當特徵向量。
基於使用者的協作過濾(UserCF),把人對每部電影的評分,當成是這個人的特徵向量,這樣就找出誰和誰像了!
基於物品的協作過濾(ItemCF),剛好相反,把每個人對這部電影的喜歡和討厭程度,當成是這電影的特徵向量,這樣就找出哪些電影相似了!
這思路是不是簡單又直覺?只要將前幾天基於內容的推薦的那幾招學會,這邊一定一下就了解了。
這下就知道為什麼我當初會在特徵向量,講了2天的原因。
今天我們提到協作過濾,就是把人跟商品的行為互動。當作是推薦的參考。其中又分為兩種:一種是使用者協作過濾,一種是物品的協作過濾。其實他就是他們參考的對象,剛好相反而已,不管哪一種,他們都會需要一張評分表,那張評分表上的東西。就可以產生。特徵向量。
接著,我們就來看看這種做法的優缺點,以及真的要實作的話,方法是什麼?